DefaultAttestationService

class DefaultAttestationService(androidAttestationConfiguration: AndroidAttestationConfiguration, iosAttestationConfiguration: IOSAttestationConfiguration, clock: Clock = Clock.System, verificationTimeOffset: Duration = Duration.ZERO) : AttestationService

Default, functional Android Key Attestation and Apple App Attestation in all its glory.

Once configured, this class provides a streamlined interface for mobile client attestation

Parameters

androidAttestationConfiguration

Configuration for Android key attestation. See AndroidAttestationConfiguration for details.

iosAttestationConfiguration

IOS AppAttest configuration. See IOSAttestationConfiguration for details.

clock

a clock to set the time of verification (used for certificate validity checks)

verificationTimeOffset

allows for fine-grained clock drift compensation (this duration is added to the certificate validity checks); can be negative.

Constructors

Link copied to clipboard
constructor(androidAttestationConfigurationJ: AndroidAttestationConfiguration, iosAttestationConfigurationJ: IOSAttestationConfiguration, verificationTimeOffsetJ: Duration = java.time.Duration.ZERO, javaClock: Clock = java.time.Clock.systemUTC())

Java-friendly constructor with java.time types

constructor(androidAttestationConfiguration: AndroidAttestationConfiguration, iosAttestationConfiguration: IOSAttestationConfiguration, clock: Clock = Clock.System, verificationTimeOffset: Duration = Duration.ZERO)

Properties

Link copied to clipboard

Exposes Android-specific API to reduce toplevel clutter

Link copied to clipboard
open override val ios: AttestationService.IOS

Groups iOS-specific API to reduce toplevel clutter.

Functions

Link copied to clipboard
fun <T : PublicKey> verifyKeyAttestation(attestationProof: List<ByteArray>, expectedChallenge: ByteArray, keyToBeAttested: T): KeyAttestation<T>

Verifies key attestation for both Android and Apple devices.

fun verifyKeyAttestation(attestationProof: List<ByteArray>, challenge: ByteArray, encodedPublicKey: ByteArray): KeyAttestation<PublicKey>

Same as verifyKeyAttestation, but taking an encoded (either ANSI X9.63 or DER) publix key as a byte array